Louis Vogel
Psychoquake

Psychoquake is a Quake-like multiplayer shooter that we made in two months as a team of five students during my second year.



I handled most of the programming. We started from a port of the Quake 3 player controller in Unity, and I reworked it so it would fit our needs. This was my first multiplayer project and also my first real experience with networking. We built the game using Mirror, the Unity package based on the old UNet API.

This project taught me a lot. It helped me strengthen my version control habits as a very juinor dev, and it pushed me to rethink my architectures with new client-server constraints in mind. I also had the chance to discuss some of these challenges with my Unity teacher at the time (and to be boss at Sentry Games). He gave me valuable advice on how to approach multiplayer design and systems in a clean and scalable way.

Letting the network part aside, another interesting issue that occured to me for the first time was how to check for collisions of fast objects. At first, I used the default unity OnTriggerEnter method, but it did not work some of the time. The reason was that the bullets were never inside the player collider in any given frame. It was so fast that it moved through it, never trigerring the collision. This was fixed by implementing a sphereCast when moving the bullet. When the bullet moves, it fires a spherecast from it's last position to its current position. If this spherecast hits an enemy, this counts as a hit.